# $LastChangedDate: 2011-04-23 21:07:07 -0400 (Sat, 23 Apr 2011) $
# Author:	Jim E. Brooks  http://www.palomino3d.org
# Desc:		
# Notes:	base library must be compiled first.
# =============================================================================

DEBUG       := 1
ROOT_DIR 	:= ../..
SRC_DIR     := src
OUT_DIR     := out
include $(ROOT_DIR)/tests/tools/GNUmakefile_defs
LDFLAGS 	+= $(LIB_BASE) $(LIB_GLUE)
TARGET_NAME	:= "base tests"
EXECS		:= $(OUT_DIR)/test_arrays \
               $(OUT_DIR)/test_array2d \
               $(OUT_DIR)/test_basic_types \
               $(OUT_DIR)/test_conf_bin \
               $(OUT_DIR)/test_conf_txt \
               $(OUT_DIR)/test_file \
               $(OUT_DIR)/test_funcs \
               $(OUT_DIR)/test_misc \
               $(OUT_DIR)/test_multivar \
               $(OUT_DIR)/test_refptr \
               $(OUT_DIR)/test_random \
               $(OUT_DIR)/test_safe_ptr \
               $(OUT_DIR)/test_shptr \
               $(OUT_DIR)/test_shptr0 \
               $(OUT_DIR)/test_shptr0b \
               $(OUT_DIR)/test_shptr2 \
               $(OUT_DIR)/test_stack \
               $(OUT_DIR)/test_time_units

# Tests were written but these are deprecated/uncompiled in Palomino V3:
#              $(OUT_DIR)/InsertionSort

# Some tests have code that ironically should cause compile-errors.
ifeq ($(TEST_COMPILE_ERRORS),1)
CXXFLAGS	+= -DTEST_COMPILE_ERRORS=1
endif

ifeq ($(QUIET),1)
define COMPILE_TEST
	@echo Compiling base test $(notdir $<)
	@$(CXX) -o $@ $< $(CXXFLAGS) $(LDFLAGS) $(SYS_LIBS)
endef
else
define COMPILE_TEST
	$(CXX) -o $@ $< $(CXXFLAGS) $(LDFLAGS) $(SYS_LIBS)
endef
endif

all:  splash  $(OUT_DIR)/made  $(EXECS) 

$(OUT_DIR)/test_arrays: $(SRC_DIR)/test_arrays.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_array2d: $(SRC_DIR)/test_array2d.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_basic_types: $(SRC_DIR)/test_basic_types.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_conf_bin: $(SRC_DIR)/test_conf_bin.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_conf_txt: $(SRC_DIR)/test_conf_txt.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_file: $(SRC_DIR)/test_file.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_funcs: $(SRC_DIR)/test_funcs.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_misc: $(SRC_DIR)/test_misc.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_multivar: $(SRC_DIR)/test_multivar.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_random: $(SRC_DIR)/test_random.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_refptr: $(SRC_DIR)/test_refptr.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_safe_ptr: $(SRC_DIR)/test_safe_ptr.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_shptr: $(SRC_DIR)/test_shptr.cc  $(SRC_DIR)/test_shptr.hh  $(SRC_DIR)/test_shptr_generic.hh  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_shptr0: $(SRC_DIR)/test_shptr0.cc  $(SRC_DIR)/test_shptr.hh  $(SRC_DIR)/test_shptr_generic.hh  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_shptr0b: $(SRC_DIR)/test_shptr0b.cc  $(SRC_DIR)/test_shptr.hh  $(SRC_DIR)/test_shptr_generic.hh  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_shptr2: $(SRC_DIR)/test_shptr2.cc $(SRC_DIR)/test_shptr.hh  $(SRC_DIR)/test_shptr_generic.hh  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_stack: $(SRC_DIR)/test_stack.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

$(OUT_DIR)/test_time_units: $(SRC_DIR)/test_time_units.cc  $(TEST_DEPS)
	$(COMPILE_TEST)

define EXTRA_CLEANING
	@rm -rf $(OUT_DIR)
	@rm -f core.* *.core *.o *ERROR_LOG* temp* a.out
endef

include $(TOOLS_DIR)/GNUmakefile_rules
